/**
 * <copyright>
 * </copyright>
 *
 */
package de.sabram.upb.specs.gla;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see de.sabram.upb.specs.gla.GlaFactory
 * @model kind="package"
 * @generated
 */
public interface GlaPackage extends EPackage
{
  /**
   * The package name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNAME = "gla";

  /**
   * The package namespace URI.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_URI = "http://www.sabram.de/upb/specs/Gla";

  /**
   * The package namespace name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_PREFIX = "gla";

  /**
   * The singleton instance of the package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  GlaPackage eINSTANCE = de.sabram.upb.specs.gla.impl.GlaPackageImpl.init();

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.gla.impl.FileImpl <em>File</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.gla.impl.FileImpl
   * @see de.sabram.upb.specs.gla.impl.GlaPackageImpl#getFile()
   * @generated
   */
  int FILE = 0;

  /**
   * The feature id for the '<em><b>Specifications</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int FILE__SPECIFICATIONS = 0;

  /**
   * The number of structural features of the '<em>File</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int FILE_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.gla.impl.SpecificationImpl <em>Specification</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.gla.impl.SpecificationImpl
   * @see de.sabram.upb.specs.gla.impl.GlaPackageImpl#getSpecification()
   * @generated
   */
  int SPECIFICATION = 1;

  /**
   * The feature id for the '<em><b>Pattern</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int SPECIFICATION__PATTERN = 0;

  /**
   * The feature id for the '<em><b>Auxiliary Scanner Name</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int SPECIFICATION__AUXILIARY_SCANNER_NAME = 1;

  /**
   * The feature id for the '<em><b>Token Processor Name</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int SPECIFICATION__TOKEN_PROCESSOR_NAME = 2;

  /**
   * The number of structural features of the '<em>Specification</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int SPECIFICATION_FEATURE_COUNT = 3;

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.gla.impl.PatternImpl <em>Pattern</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.gla.impl.PatternImpl
   * @see de.sabram.upb.specs.gla.impl.GlaPackageImpl#getPattern()
   * @generated
   */
  int PATTERN = 2;

  /**
   * The feature id for the '<em><b>Value</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int PATTERN__VALUE = 0;

  /**
   * The number of structural features of the '<em>Pattern</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int PATTERN_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.gla.impl.TokenNameImpl <em>Token Name</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.gla.impl.TokenNameImpl
   * @see de.sabram.upb.specs.gla.impl.GlaPackageImpl#getTokenName()
   * @generated
   */
  int TOKEN_NAME = 3;

  /**
   * The feature id for the '<em><b>Pattern</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TOKEN_NAME__PATTERN = SPECIFICATION__PATTERN;

  /**
   * The feature id for the '<em><b>Auxiliary Scanner Name</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TOKEN_NAME__AUXILIARY_SCANNER_NAME = SPECIFICATION__AUXILIARY_SCANNER_NAME;

  /**
   * The feature id for the '<em><b>Token Processor Name</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TOKEN_NAME__TOKEN_PROCESSOR_NAME = SPECIFICATION__TOKEN_PROCESSOR_NAME;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TOKEN_NAME__NAME = SPECIFICATION_FEATURE_COUNT + 0;

  /**
   * The number of structural features of the '<em>Token Name</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TOKEN_NAME_FEATURE_COUNT = SPECIFICATION_FEATURE_COUNT + 1;

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.gla.impl.AuxiliaryScannerNameImpl <em>Auxiliary Scanner Name</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.gla.impl.AuxiliaryScannerNameImpl
   * @see de.sabram.upb.specs.gla.impl.GlaPackageImpl#getAuxiliaryScannerName()
   * @generated
   */
  int AUXILIARY_SCANNER_NAME = 4;

  /**
   * The feature id for the '<em><b>Value</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int AUXILIARY_SCANNER_NAME__VALUE = 0;

  /**
   * The number of structural features of the '<em>Auxiliary Scanner Name</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int AUXILIARY_SCANNER_NAME_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.sabram.upb.specs.gla.impl.TokenProcessorNameImpl <em>Token Processor Name</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.sabram.upb.specs.gla.impl.TokenProcessorNameImpl
   * @see de.sabram.upb.specs.gla.impl.GlaPackageImpl#getTokenProcessorName()
   * @generated
   */
  int TOKEN_PROCESSOR_NAME = 5;

  /**
   * The feature id for the '<em><b>Value</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TOKEN_PROCESSOR_NAME__VALUE = 0;

  /**
   * The number of structural features of the '<em>Token Processor Name</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TOKEN_PROCESSOR_NAME_FEATURE_COUNT = 1;


  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.gla.File <em>File</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>File</em>'.
   * @see de.sabram.upb.specs.gla.File
   * @generated
   */
  EClass getFile();

  /**
   * Returns the meta object for the containment reference list '{@link de.sabram.upb.specs.gla.File#getSpecifications <em>Specifications</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Specifications</em>'.
   * @see de.sabram.upb.specs.gla.File#getSpecifications()
   * @see #getFile()
   * @generated
   */
  EReference getFile_Specifications();

  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.gla.Specification <em>Specification</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Specification</em>'.
   * @see de.sabram.upb.specs.gla.Specification
   * @generated
   */
  EClass getSpecification();

  /**
   * Returns the meta object for the containment reference '{@link de.sabram.upb.specs.gla.Specification#getPattern <em>Pattern</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Pattern</em>'.
   * @see de.sabram.upb.specs.gla.Specification#getPattern()
   * @see #getSpecification()
   * @generated
   */
  EReference getSpecification_Pattern();

  /**
   * Returns the meta object for the containment reference '{@link de.sabram.upb.specs.gla.Specification#getAuxiliaryScannerName <em>Auxiliary Scanner Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Auxiliary Scanner Name</em>'.
   * @see de.sabram.upb.specs.gla.Specification#getAuxiliaryScannerName()
   * @see #getSpecification()
   * @generated
   */
  EReference getSpecification_AuxiliaryScannerName();

  /**
   * Returns the meta object for the containment reference '{@link de.sabram.upb.specs.gla.Specification#getTokenProcessorName <em>Token Processor Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Token Processor Name</em>'.
   * @see de.sabram.upb.specs.gla.Specification#getTokenProcessorName()
   * @see #getSpecification()
   * @generated
   */
  EReference getSpecification_TokenProcessorName();

  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.gla.Pattern <em>Pattern</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Pattern</em>'.
   * @see de.sabram.upb.specs.gla.Pattern
   * @generated
   */
  EClass getPattern();

  /**
   * Returns the meta object for the attribute '{@link de.sabram.upb.specs.gla.Pattern#getValue <em>Value</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Value</em>'.
   * @see de.sabram.upb.specs.gla.Pattern#getValue()
   * @see #getPattern()
   * @generated
   */
  EAttribute getPattern_Value();

  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.gla.TokenName <em>Token Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Token Name</em>'.
   * @see de.sabram.upb.specs.gla.TokenName
   * @generated
   */
  EClass getTokenName();

  /**
   * Returns the meta object for the attribute '{@link de.sabram.upb.specs.gla.TokenName#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see de.sabram.upb.specs.gla.TokenName#getName()
   * @see #getTokenName()
   * @generated
   */
  EAttribute getTokenName_Name();

  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.gla.AuxiliaryScannerName <em>Auxiliary Scanner Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Auxiliary Scanner Name</em>'.
   * @see de.sabram.upb.specs.gla.AuxiliaryScannerName
   * @generated
   */
  EClass getAuxiliaryScannerName();

  /**
   * Returns the meta object for the attribute '{@link de.sabram.upb.specs.gla.AuxiliaryScannerName#getValue <em>Value</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Value</em>'.
   * @see de.sabram.upb.specs.gla.AuxiliaryScannerName#getValue()
   * @see #getAuxiliaryScannerName()
   * @generated
   */
  EAttribute getAuxiliaryScannerName_Value();

  /**
   * Returns the meta object for class '{@link de.sabram.upb.specs.gla.TokenProcessorName <em>Token Processor Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Token Processor Name</em>'.
   * @see de.sabram.upb.specs.gla.TokenProcessorName
   * @generated
   */
  EClass getTokenProcessorName();

  /**
   * Returns the meta object for the attribute '{@link de.sabram.upb.specs.gla.TokenProcessorName#getValue <em>Value</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Value</em>'.
   * @see de.sabram.upb.specs.gla.TokenProcessorName#getValue()
   * @see #getTokenProcessorName()
   * @generated
   */
  EAttribute getTokenProcessorName_Value();

  /**
   * Returns the factory that creates the instances of the model.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the factory that creates the instances of the model.
   * @generated
   */
  GlaFactory getGlaFactory();

  /**
   * <!-- begin-user-doc -->
   * Defines literals for the meta objects that represent
   * <ul>
   *   <li>each class,</li>
   *   <li>each feature of each class,</li>
   *   <li>each enum,</li>
   *   <li>and each data type</li>
   * </ul>
   * <!-- end-user-doc -->
   * @generated
   */
  interface Literals
  {
    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.gla.impl.FileImpl <em>File</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.gla.impl.FileImpl
     * @see de.sabram.upb.specs.gla.impl.GlaPackageImpl#getFile()
     * @generated
     */
    EClass FILE = eINSTANCE.getFile();

    /**
     * The meta object literal for the '<em><b>Specifications</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference FILE__SPECIFICATIONS = eINSTANCE.getFile_Specifications();

    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.gla.impl.SpecificationImpl <em>Specification</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.gla.impl.SpecificationImpl
     * @see de.sabram.upb.specs.gla.impl.GlaPackageImpl#getSpecification()
     * @generated
     */
    EClass SPECIFICATION = eINSTANCE.getSpecification();

    /**
     * The meta object literal for the '<em><b>Pattern</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference SPECIFICATION__PATTERN = eINSTANCE.getSpecification_Pattern();

    /**
     * The meta object literal for the '<em><b>Auxiliary Scanner Name</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference SPECIFICATION__AUXILIARY_SCANNER_NAME = eINSTANCE.getSpecification_AuxiliaryScannerName();

    /**
     * The meta object literal for the '<em><b>Token Processor Name</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference SPECIFICATION__TOKEN_PROCESSOR_NAME = eINSTANCE.getSpecification_TokenProcessorName();

    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.gla.impl.PatternImpl <em>Pattern</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.gla.impl.PatternImpl
     * @see de.sabram.upb.specs.gla.impl.GlaPackageImpl#getPattern()
     * @generated
     */
    EClass PATTERN = eINSTANCE.getPattern();

    /**
     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute PATTERN__VALUE = eINSTANCE.getPattern_Value();

    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.gla.impl.TokenNameImpl <em>Token Name</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.gla.impl.TokenNameImpl
     * @see de.sabram.upb.specs.gla.impl.GlaPackageImpl#getTokenName()
     * @generated
     */
    EClass TOKEN_NAME = eINSTANCE.getTokenName();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute TOKEN_NAME__NAME = eINSTANCE.getTokenName_Name();

    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.gla.impl.AuxiliaryScannerNameImpl <em>Auxiliary Scanner Name</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.gla.impl.AuxiliaryScannerNameImpl
     * @see de.sabram.upb.specs.gla.impl.GlaPackageImpl#getAuxiliaryScannerName()
     * @generated
     */
    EClass AUXILIARY_SCANNER_NAME = eINSTANCE.getAuxiliaryScannerName();

    /**
     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute AUXILIARY_SCANNER_NAME__VALUE = eINSTANCE.getAuxiliaryScannerName_Value();

    /**
     * The meta object literal for the '{@link de.sabram.upb.specs.gla.impl.TokenProcessorNameImpl <em>Token Processor Name</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.sabram.upb.specs.gla.impl.TokenProcessorNameImpl
     * @see de.sabram.upb.specs.gla.impl.GlaPackageImpl#getTokenProcessorName()
     * @generated
     */
    EClass TOKEN_PROCESSOR_NAME = eINSTANCE.getTokenProcessorName();

    /**
     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute TOKEN_PROCESSOR_NAME__VALUE = eINSTANCE.getTokenProcessorName_Value();

  }

} //GlaPackage
